[AD] Scalaアプリケーションの開発・保守は合同会社ミルクソフトにお任せください
この記事では、Scala 3(コードネーム:Dotty)にて新たに導入された「型ラムダ(Type Lambdas)」について解説します。
型ラムダで高階型を表現する
型ラムダを使用すると、高階型を表現することができます。
型ラムダの特長は、高階型を表現する際に型定義をする必要がないことです。
例えば以下のような型定義があるとします。
type T[X, Y] = Map[X, Y]
これを、Scala 3では以下のように記述することもできるようになりました。
[X, Y] =>> Map[Y, X]
この型は二つの型引数をとる型コンストラクタを定義しています。
引数 X
と Y
を Map[Y, X]
に投射しています。
ラムダ型の型パラメータは境界を持つことができますが、+
や-
の変位アノテーションを持つことはできません。
型ラムダの導入は何が嬉しいのか
「型の表現力が増した」ということです。
つまり、2系までなら表現しづらかった型を簡単に表現できるようになったということです。
Scala言語の開発、あるいはある種のライブラリの開発にとっては生産性が高まるため喜ばしいはずです。
とはいえ、Scalaを活用する一般の開発者にとっては、これといって嬉しいことはないかもしれません。
サイト内検索
カテゴリ「Scala 3(Dotty)特集」の記事
「可変長引数パターン」のご紹介:Scala 3のパワーアップした表現力(2)
次世代Scala「Dotty」 3つのねらい・7つの新しさをご紹介
newキーワードを不要にする「クリエイターアプリケーション」とは?:Scala 3のパワーアップした表現力(4)
タプルと関数が限界突破!22制限の撤廃について:Scala 3のパワーアップした表現力(4)
「型ラムダ」のご紹介:Scala 3の新しい型表現(3)
【2019年12月】Scala 3(Dotty)開発の進捗と2.13からの移行についての最新情報
「合併型」のご紹介:Scala 3の新しい型表現(2)
Scala 3に用意された移行オプションの使い方まとめ
「交差型」のご紹介:Scala 3の新しい型表現(1)
Scala 3.0.0-M1がリリースされます
「コンテキスト関数」のご紹介:Scala 3の新しい型表現(4)
「トレイトパラメータ」のご紹介:Scala 3のパワーアップした表現力(1)
トップレベル定義の導入とパッケージオブジェクトの廃止について:Scala 3のパワーアップした表現力(3)
カテゴリ「Scala 3(Dotty)特集」の記事
「可変長引数パターン」のご紹介:Scala 3のパワーアップした表現力(2)
次世代Scala「Dotty」 3つのねらい・7つの新しさをご紹介
newキーワードを不要にする「クリエイターアプリケーション」とは?:Scala 3のパワーアップした表現力(4)
タプルと関数が限界突破!22制限の撤廃について:Scala 3のパワーアップした表現力(4)
「型ラムダ」のご紹介:Scala 3の新しい型表現(3)
【2019年12月】Scala 3(Dotty)開発の進捗と2.13からの移行についての最新情報
「合併型」のご紹介:Scala 3の新しい型表現(2)
Scala 3に用意された移行オプションの使い方まとめ
「交差型」のご紹介:Scala 3の新しい型表現(1)
Scala 3.0.0-M1がリリースされます
「コンテキスト関数」のご紹介:Scala 3の新しい型表現(4)
「トレイトパラメータ」のご紹介:Scala 3のパワーアップした表現力(1)
トップレベル定義の導入とパッケージオブジェクトの廃止について:Scala 3のパワーアップした表現力(3)